#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <termios.h>
#include <unistd.h>
#include <string.h>

int uart;

static int open_usart(void)
{
	int fd;
	fd = open("/dev/ttyACM0",O_RDWR|O_NOCTTY|O_NONBLOCK);
	if( fd == -1 ) printf("open error\n");
	printf("串口fd=%d\n",fd);
	return fd;
}

static int set_usart( int fd )
{
	struct termios uart;
	bzero(&uart,sizeof(uart));
	//设置字符大小
	uart.c_cflag |= CLOCAL | CREAD;
	uart.c_cflag &= ~CSIZE;
	//设置停止位
	uart.c_cflag = CS8;//--
	//校验位		无校验
	uart.c_cflag &=~PARENB;
	//波特率
	cfsetispeed(&uart,B115200);
	cfsetospeed(&uart,B115200);
	//设置停止位\357
	uart.c_cflag &= ~CSTOPB;
	//设置等待时间和最小接收字符
	uart.c_cc[VTIME] = 100;
	uart.c_cc[VMIN] = 0;
	//处理未接受字符
	tcflush(fd,TCIFLUSH);
	//激活配置
	if( tcsetattr(fd,TCSANOW,&uart) != 0)
	{
		printf("error\n");
		return -1;
	}
	printf("success!\n");
	return 0;
}



void usart_init(void)
{

	uart = open_usart();
	set_usart(uart);
}





